package main

/*
	给定一个已按照非递减顺序排序的整数数组，请你从数组种找出两个数满足相加之和等于目标数
	函数应该以长度为2的整数数组的形式返回这两个数的下标值，numbers的下标从1开始计数
	每个输入只对应唯一的答案，而且不可以重复使用相同的元素
*/

func twoSum(numbers []int, target int)[]int{
	//一个指针指向开头，另一个指向结尾
	//因为数据是非递减顺序排序，所以如果小于target，就前指针后移
	//如果大于target，后指针前移
	left := 0   //注意：numbers从1计数，返回时记得加一
	n := len(numbers)
	right := n-1
	result :=[]int{0,0}
	for{
		if left>=right{
			break;
		}
		if numbers[left]+numbers[right]==target{
			result[0] = left+1
			result[1] = right+1
			return result
		}else if numbers[left]+numbers[right]>target{
			right--
		}else{
			left++
		}
	}
	return result
}

func main(){
	nums := []int{-1,0}
	target := -1
	result := twoSum(nums,target)
	for _,v := range result{
		print(v)
		print(" ")
	}
}